iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
Software Development

Leetcode 習慣養成之路系列 第 25

Day 25 - 232. Implement Queue using Stacks

  • 分享至 

  • xImage
  •  

題目說明

用兩個 stack 實作 queue

解題思路

  1. stack1: 當要 push 的時候都從這裡放入
  2. stack2: 當要 pop 的時候就從這裡拿
class MyQueue:

    def __init__(self):
        self.s1 = deque()
        self.s2 = deque()

    def push(self, x: int) -> None:
        self.s1.append(x)
        

    def pop(self) -> int:
        if len(self.s2) == 0:
            while len(self.s1) > 0:
                self.s2.append(self.s1.pop())
        return self.s2.pop()
        
    def peek(self) -> int:
        if len(self.s2) == 0:
            while len(self.s1) > 0:
                self.s2.append(self.s1.pop())
        return self.s2[-1]
        
        
    def empty(self) -> bool:
        return len(self.s1) == 0 and len(self.s2) == 0
        
        


# Your MyQueue object will be instantiated and called as such:
# obj = MyQueue()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.peek()
# param_4 = obj.empty()

上一篇
Day 24 - 227. Basic Calculator II
下一篇
Day 26 - 155. Min Stack
系列文
Leetcode 習慣養成之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言